home *** CD-ROM | disk | FTP | other *** search
/ HyperLib 1997 Winter - Disc 1 / HYPERLIB-1997-Winter-CD1.ISO.7z / HYPERLIB-1997-Winter-CD1.ISO / オンラインウェア / UTIL / Msh 1.0.0.sit / Msh 1.0.0 f / Manual / MAN2M.HLP < prev    next >
Text File  |  1996-11-14  |  28KB  |  1,057 lines

  1. /***Intro***/ MemoryManager Memory ResourceManager Resource
  2. Intro(2m)
  3.  
  4. 【名前】
  5.     Intro - Toolbox: Memory/Resource(man2m.hlp)
  6.  
  7. 【概要】
  8.  
  9. 【Inside Macintosh】
  10.                                 <<キーワード>>
  11.                                 MemoryManager
  12.     Memory Manager
  13.         II-7
  14.         IV-77
  15.         VI-28(Part 3)    一時メモリ, 仮想記憶, 32Bit アドレッシング
  16.  
  17.     Resource Manager                    ResourceManager
  18.         I-101
  19.         IV-15
  20.         V-29        RGetResource() 追加
  21.         VI-13(Part 2)    部分リソースのRead/Write, FSでのファイル操作
  22.  
  23.     リソースの一覧(ResList)
  24.  
  25. 【関連項目】
  26.  
  27. 【ヘッダー】
  28.     Types.h
  29.  
  30.     Memory.h
  31.     Resources.h
  32. /***Memory***/ Ptr Handle MemoryManager
  33. Memory(2m)
  34.  
  35. 【名前】
  36.     Memory - Macintosh Toolbox ルーチン: メモリーマネージャー
  37.  
  38. 【概要】
  39.     Mem_Init    初期化処理
  40.     Zone        ヒープゾーン
  41.     Handle        再配置可能なメモリブロックを管理するもの
  42.     Ptr        再配置不可能はメモリブロックを示すポインタ
  43.  
  44. 【解説】
  45.     ■Ptr, Handle
  46.       Ptr        char *
  47.       Handle    Ptr *
  48.  
  49.  
  50. 【ルーチン】
  51.     Initialization and Allocation
  52.         InitApplZone    InitZone    MoreMasters
  53.         SetApplBase    MaxApplZone    GetApplLimit
  54.         SetApplLimit
  55.  
  56.     Heap Zone Access
  57.         GetZone        SetZone        SystemZone
  58.         ApplicZone
  59.  
  60.     Allocationg and Releasing Relocatable Blocks
  61.         NewHandle    DisposHandle
  62.         GetHandleSize    SetHandleSize
  63.         HandleZone    RecoverHandle    ReallocHandle
  64.         NewEmptyHandle
  65.         (NewHandleSys    NewHandleClear NewHandleSysCle
  66.         NewEmptyHandleSysar)
  67.  
  68.     Allocationg and Releasing Nonrelocatable Blocks
  69.         NewPtr        DisposPtr    GetPtrSize
  70.         SetPtrSize    PtrZone
  71.         (NewPtrSys NewPtrClear NewPtrSysClear)
  72.  
  73.     Freeing Spacw in the Heap
  74.         FreeMem        MaxMem        CompactMem
  75.         ResrvMem    PurgeMem    EmptyHandle
  76.  
  77.     Properties of Relocatable Blocks
  78.         HLock        HUnlock
  79.         HPurge        HNoPurge    HLockHi
  80.  
  81.     Grow Zone Operation
  82.         SetGrowZone    GZSaveHnd
  83.  
  84.     その他
  85.         BlockMove    TopMem        MoveHHi
  86.         MemError
  87.  
  88.     IV で追加
  89.         MaxBlock    PurgeSpace    StackSpace
  90.         (MaxBlockSys)
  91.  
  92.         HSetRBit    HClrRBit
  93.         HGetState    HSetState
  94.  
  95. 【関連項目】
  96.  
  97. 【Inside Macintosh】
  98.     Memory Manager
  99.         II-7
  100.         IV-77
  101.         VI-28(Part 3)    一時メモリ, 仮想記憶, 32Bit アドレッシング
  102. #
  103. #
  104. #
  105. /***OSType***/ OSTypePtr ResType ResTypePtr Style ScriptCode LangCode Byte SignedByte Boolean ProcPtr ProcHandle Str255 Str63 Str32 Str31 Str27 Str15 StringPtr StringHandle VHSelect
  106. OSErr(2m)
  107.  
  108. 【名前】
  109.     OSErr   - 基本のデータタイプ
  110.     OSType  - data type (unsigned long)
  111.     ResType - data type (unsigned long)
  112.     Style   - data type (unsigned char)
  113.     ProcPtr - data type (void *)
  114.     Str255  - data type (unsigned char [256])
  115.  
  116. 【形式】
  117.     ■OSType    I-??
  118.         OSType        ulong
  119.         OSTypePtr    OSType *
  120.  
  121.     ■ResType    I-107
  122.         ResType        ulong
  123.         ResTypePtr    ResType *
  124.  
  125.     ■Boolean,Byte,SignedByte
  126.         Boolean        uchar
  127.         Byte        uchar
  128.         SignedByte    char
  129.  
  130.     ■Style        I-152
  131.           Style    uchar
  132.  
  133.         ScriptCode    short
  134.         LangCode    short
  135.  
  136.     ■ProcPtr    I-78
  137.         ProcPtr        void *
  138.         ProcHandle    ProcPtr *
  139.  
  140.     ■Str255    I-78
  141.         Str255        uchar    [256]
  142.         Str63        uchar    [64]
  143.         Str32        uchar    [33]
  144.         Str31        uchar    [32]
  145.         Str27        uchar    [28]
  146.         Str15        uchar    [16]
  147.         StringPtr    uchar *
  148.         StringHandle    uchar **
  149.  
  150.     ■VHSelect    I-139
  151.         VHSelect    uchar
  152. #
  153. #
  154. #
  155. /***InitApplZone***/ InitZone MoreMasters SetApplBase MaxApplZone GetApplLimit SetApplLimit GetZone SetZone SystemZone ApplicZone MaxBlock MaxBlockSys PurgeSpace StackSpace MemoryManager
  156. InitApplZone(2m)
  157.  
  158. 【名前】
  159.     InitApplZone - Appl-Heap の初期化
  160.     InitZone     - 新しいヒープゾーンの作成
  161.     SetApplBase  - Appl-Heap の先頭を設定
  162.     MoreMasters  - マスタポインタ用のメモリーブロック確保
  163.     MaxApplZone  - Appl-Heap ゾーンを最大にする
  164.     GetApplLimit - Appl-Heap の上限を設定
  165.     SetApplLimit - Appl-Heap の上限を設定
  166.     GetZone      - Curr-Heap Zone ポインタを取得
  167.     SetZone      - Curr-Heap Zone の設定
  168.     SystemZone   - System-Zone の取得
  169.     ApplicZone   - Appl-Zone の取得
  170.     MaxBlock    - ヒープを圧縮して得られる空きのサイズを算出
  171.     MaxBlockSys -
  172.     PurgeSpace  - パージによって得られる空間の算出
  173.     StackSpace  - スタックの空き容量の取得
  174.  
  175. 【書式】
  176.     ■InitApplZone    II-28
  177.     ■InitZone    II-29
  178.     ■MoreMasters    II-31
  179.     ■SetApplBase    II-28
  180.     ■MaxApplZone    II-30; IV-77, 83
  181.     ■GetApplLimit    II-29
  182.     ■SetApplLimit    II-30
  183.  
  184.     ■GetZone    II-31
  185.     ■SetZone    II-31
  186.     ■SystemZone    II-32
  187.     ■ApplicZone    II-32
  188.  
  189.     ■MaxBlock    IV-77
  190.     ■MaxBlockSys    ??
  191.     ■PurgeSpace    IV-77
  192.     ■StackSpace    IV-78
  193.  
  194.     void    InitApplZone(void);
  195.         アプリケーションヒープの初期化
  196.  
  197.     void    InitZone(GrowZoneProcPtr pgrowZone, short cmoreMasters,
  198.             void *limitPtr, void *startPtr);
  199.  
  200.         新しいヒープゾーンの作成
  201.           startPtrに先頭バイト、limitPtrに最終バイト+1を渡します。
  202.           pGrowZoneにはグローゾーンポインタを渡します
  203.  
  204.     void    MoreMasters(void);
  205.         マスタポインタ用のメモリーブロックをあらたに確保します
  206.  
  207.     void    SetApplBase(Ptr startPtr);
  208.         アプリケーションヒープの先頭をstartPtrにします
  209.  
  210.     void    MaxApplZone(void);
  211.         アプリケーションヒープゾーンを最大にする
  212.           アプリケーションピープを SetApplLimit() で設定したものにする
  213.  
  214.     Ptr    GetApplLimit();
  215.     void    SetApplLimit(Ptr zoneLimit);
  216.         アプリケーションピープの上限をzonelimitのアドレスにする
  217.  
  218.     THz    GetZone(void);
  219.     void    SetZone(THz hz);
  220.     THz    SystemZone(void);
  221.     THz    ApplicZone(void);
  222.  
  223.     long    MaxBlock(void);
  224.     long    MaxBlockSys(void);
  225.             ヒープを圧縮して得られる空きのサイズを算出します
  226.  
  227.     void    PurgeSpace(long *total, long *contig);
  228.             total    一般的はpurgeによって得られる空間の総量
  229.             contig    purgeによって得られる最大連続空間
  230.  
  231.     long    StackSpace(void);
  232. /***NewHandle***/ DisposHandle GetHandleSize SetHandleSize HandleZone RecoverHandle ReallocHandle NewEmptyHandle NewHandleSys NewHandleClear NewHandleSysClear RecoverHandleSys NewEmptyHandleSys MemoryManager
  233. NewHandle(2m)
  234.  
  235. 【名前】
  236.     NewHandle         - ハンドルの取得
  237.     DisposHandle      - ハンドルの解放
  238.     GetHandleSize     - ハンドルのバイト数を取得
  239.     SetHandleSize     - ハンドルのリサイズ
  240.     HandleZone        - ハンドルの属する Zone を取得
  241.     RecoverHandle     - ポインタが示すメモリ領域の指すハンドルを得る
  242.     ReallocHandle     - メモリを新たに確保する
  243.     NewEmptyHandle    - 空のHandleを作成します(ユーザーは通常使わない)
  244.     NewHandleClear    -
  245.     NewHandleSys      -
  246.     NewHandleSysClear -
  247.     RecoverHandleSys  -
  248.     NewEmptyHandleSys -
  249.  
  250. 【書式】
  251.     ■NewHandle        II-32; I-76, 80
  252.     ■DisposHandle        II-33; I-76, 80
  253.     ■GetHandleSize        II-33
  254.     ■SetHandleSize        II-34
  255.     ■HandleZone        II-34
  256.     ■RecoverHandle        II-35
  257.     ■ReallocHandle        II-35
  258.  
  259.     ■NewEmptyHandle    IV-78
  260.  
  261.     ■NewHandleClear
  262.     ■NewHandleSys
  263.     ■NewHandleSysClear
  264.     ■RecoverHandleSys
  265.  
  266.  
  267.     Handle    NewHandle(Size byteCount);
  268.             指定バイトのハンドルを作成する
  269.  
  270.     void    DisposHandle(Handle h);
  271.  
  272.     Size    GetHandleSize(Handle h);
  273.     void    SetHandleSize(Handle h, Size newSize);
  274.  
  275.     THz    HandleZone(Handle h);
  276.  
  277.     Handle    RecoverHandle(Ptr p);
  278.  
  279.     void    ReallocHandle(Handle h, Size byteCount);
  280.             hにlogicalSize新たに確保する
  281.  
  282.     Handle    NewEmptyHandle(void);
  283.  
  284.     Handle    NewHandleClear(Size byteCount);
  285.     Handle    NewHandleSys(Size byteCount);
  286.     Handle    NewHandleSysClear(Size byteCount);
  287.     Handle    NewEmptyHandleSys(void);
  288.     Handle    RecoverHandleSys(Ptr p);
  289. /***NewPtr***/ NewPtrSys NewPtrClear NewPtrSysClear DisposPtr GetPtrSize SetPtrSize PtrZone MemoryManager
  290. NewPtr(2m)
  291.  
  292. 【名前】
  293.     NewPtr         - ポインタの作成
  294.     DisposPtr      - ポインタの解放
  295.     GetPtrSize     - ポインタのバイト数を取得
  296.     SetPtrSize     - ポインタのリサイズ
  297.     PtrZone        - ポインタを含むヒープゾーンの取得
  298.     NewPtrClear    -
  299.     NewPtrSys      -
  300.     NewPtrSysClear -
  301.  
  302. 【書式】
  303.     ■NewPtr    II-36; I-75, 79
  304.     ■DisposPtr    II-36; I-75, 79
  305.     ■GetPtrSize    II-37
  306.     ■SetPtrSize    II-37
  307.     ■PtrZone    II-37
  308.     ■NewPtrClear
  309.     ■NewPtrSys
  310.     ■NewPtrSysClear
  311.  
  312.     Ptr    NewPtr(Size byteCount);
  313.  
  314.     void    DisposPtr(Ptr p);
  315.  
  316.     Size    GetPtrSize(Ptr p);
  317.     void    SetPtrSize(Ptr p, Size newSize);
  318.  
  319.     THz    PtrZone(Ptr p);
  320.  
  321.     Ptr    NewPtrClear   (Size byteCount);
  322.     Ptr    NewPtrSys     (Size byteCount);
  323.     Ptr    NewPtrSysClear(Size byteCount);
  324. /***FreeMem***/ MaxMem CompactMem ResrvMem PurgeMem EmptyHandle FreeMemSys MaxMemSys CompactMemSys PurgeMemSys  MemoryManager
  325. FreeMem(2m)
  326.  
  327. 【名前】
  328.     FreeMem       - 現在のヒープの空きの合計を返します
  329.     MaxMem        - 現在のヒープを圧縮(パージ可能なものをパージ)
  330.     CompactMem    - 現在のヒープを圧縮(パージ可能なものでもパージしない)
  331.     ResrvMem      - ゾーンの下位アドレスに指定バイトの空きスペースを生成
  332.     PurgeMem      - 指定バイト空きができるまでパージを繰り返す
  333.     EmptyHandle   - ハンドルパージしてnilにします
  334.     FreeMemSys    -
  335.     MaxMemSys     -
  336.     CompactMemSys -
  337.     PurgeMemSys   -
  338.  
  339. 【書式】
  340.     ■FreeMem    II-38
  341.     ■MaxMem    II-38
  342.     ■CompactMem    II-39
  343.     ■ResrvMem    II-39
  344.     ■PurgeMem    II-39
  345.     ■EmptyHandle    II-40
  346.  
  347.     ■FreeMemSys
  348.     ■MaxMemSys
  349.     ■CompactMemSys
  350.     ■PurgeMemSys
  351.  
  352.     long    FreeMem(void);
  353.  
  354.     Size    MaxMem(Size *grow);
  355.             現在のヒープを圧縮(パージ可能なものをパージ)
  356.  
  357.     Size    CompactMem(Size cbNeeded);
  358.             現在のヒープを圧縮(パージ可能なものでもパージしない)
  359.  
  360.     void    ResrvMem(Size cbNeeded);
  361.     void    PurgeMem(Size cbNeeded);
  362.  
  363.     void    EmptyHandle(Handle h);
  364.             hをパージしてnilにします
  365.  
  366.  
  367.     long    FreeMemSys(void);
  368.     Size    MaxMemSys(Size *grow);
  369.     Size    CompactMemSys(Size cbNeeded);
  370.     void    PurgeMemSys(Size cbNeeded);
  371. /***HLock***/ HUnlock HPurge HNoPurge HLockHi HSetRBit HClrRBit HGetState HSetState MemoryManager
  372. HLock(2m)
  373.  
  374. 【名前】
  375.     HLock     - ハンドルのロック
  376.     HUnlock   - ハンドルのアンロック
  377.     HPurge    - ハンドルをパージ可能に
  378.     HNoPurge  - ハンドルをパージ不可に
  379.     HLockHi   - ??
  380.     HSetRBit  - リソースフラグビットをセット
  381.     HClrRBit  - リソースフラグビットをクリア
  382.     HGetState - フラグバイトの取得
  383.     HSetState - フラグバイトの設定
  384.  
  385. 【書式】
  386.     ■HLock        II-40
  387.     ■HUnlock    II-41
  388.     ■HPurge    II-41
  389.     ■HNoPurge    II-41
  390.     ■HLockHi    ??
  391.     ■HSetRBit    IV-79
  392.     ■HClrRBit    IV-79
  393.     ■HGetState    IV-80
  394.     ■HSetState    IV-80
  395.  
  396.     void    HLock  (Handle h);
  397.     void    HUnlock(Handle h);
  398.  
  399.     void    HPurge  (Handle h);
  400.     void    HNoPurge(Handle h);
  401.  
  402.     void    HLockHi(Handle h);
  403.  
  404.     void    HSetRBit(Handle h);
  405.     void    HClrRBit(Handle h);
  406.  
  407.     char    HGetState(Handle h);
  408.     void    HSetState(Handle h, char flags);
  409. /***SetGrowZone***/ GZSaveHnd MemoryManager
  410. SetGrowZone(2m)
  411.  
  412. 【名前】
  413.     SetGrowZone - カレントヒープのグローゾーン関数の設定
  414.     GZSaveHnd   -
  415.  
  416. 【書式】
  417.     ■SetGrowZone    II-42
  418.     ■GZSaveHnd    II-43
  419.  
  420.     void    SetGrowZone(GrowZoneProcPtr growZone);
  421.             pascal long myGrowZone(Size cbNeeded);
  422.  
  423.         の形で、cbNeeded 空けて下さい。少しでも得たときは、0以外の
  424.         値を、だめだったら、0を渡してください
  425.  
  426.     Handle    GZSaveHnd(void);
  427. /***BlockMove***/ TopMem MoveHHi MemError MemoryManager
  428. BlockMove(2m)
  429.  
  430. 【名前】
  431.     BlockMove - メモリ内容のコピー(重なりOK)
  432.     TopMem    - RAM 最終アドレスの取得
  433.     MoveHHi   - ハンドルをできるだけ上の方へ動かす
  434.     MemError  - Memory Manager ルーチンの最後に呼ばれたresult code を返す
  435.  
  436. 【書式】
  437.     ■BlockMove    II-44
  438.     ■TopMem    II-44
  439.     ■MoveHHi    II-44; IV-77, 83
  440.     ■MemError    II-44
  441.  
  442.     void    BlockMove(const void *srcPtr, void *destPtr, Size byteCount);
  443.  
  444.     Ptr    TopMem(void);
  445.  
  446.     void    MoveHHi(Handle h);
  447.  
  448.     OSErr    MemError(void);
  449. /***SwapMMUMode***/ GetMMUMode StripAddress Translate24To32 MemoryManager
  450. SwapMMUMode(2m)
  451.  
  452. 【名前】
  453.     SwapMMUMode     -
  454.     GetMMUMode      -
  455.     StripAddress    -
  456.     Translate24To32 -
  457.  
  458. 【書式】
  459.     ■SwapMMUMode        V-593 (OS Utilities)
  460.     ■GetMMUMode        V-593 (OS Utilities)
  461.     ■StripAddress        V-593 (OS Utilities), VI-28-16
  462.     ■Translate24To32    VI-28-16
  463.  
  464.     void    SwapMMUMode(char *mode);
  465.     char    GetMMUMode(void);
  466.             false32b = 0    24-bit addressing mode
  467.             true32b = 1    32-bit addressing mode
  468.  
  469.     Ptr    StripAddress(void *theAddress);
  470.  
  471.     Ptr    Translate24To32(void *addr24);
  472. /***HoldMemory***/ UnholdMemory LockMemory LockMemoryContiguous UnlockMemory GetPhysical MemoryBlock LogicalToPhysicalTable MemoryManager
  473. HoldMemory(2m)
  474.  
  475. 【名前】
  476.     HoldMemory           -
  477.     UnholdMemory         -
  478.     LockMemory           -
  479.     LockMemoryContiguous -
  480.     UnlockMemory         -
  481.     GetPhysical          -
  482.     MemoryBlock            - data type
  483.     LogicalToPhysicalTable - data type
  484.  
  485. 【書式】
  486.     ■    VI-28-26〜
  487.  
  488.     OSErr    HoldMemory(void *address, unsigned long count);
  489.     OSErr    UnholdMemory(void *address, unsigned long count);
  490.  
  491.     OSErr    LockMemory(void *address, unsigned long count);
  492.     OSErr    LockMemoryContiguous(void *address, unsigned long count);
  493.     OSErr    UnlockMemory(void *address, unsigned long count);
  494.  
  495.     OSErr    GetPhysical(LogicalToPhysicalTable *addresses,
  496.             unsigned long *physicalEntryCount);
  497.  
  498.     ■MemoryBlock    VI-28-21
  499.       MemoryBlock
  500.         void    *address;
  501.         unsigned long count;
  502.  
  503.     ■LogicalToPhysicalTable    VI-28-22
  504.       LogicalToPhysicalTable
  505.         MemoryBlock    logical;
  506.         MemoryBlock    physical[defaultPhysicalEntryCount];
  507.  
  508.         defaultPhysicalEntryCount = 8
  509. /***DeferUserFn***/ MemoryManager
  510. DeferUserFn(2m)
  511.  
  512. 【名前】
  513.     DeferUserFn -
  514.  
  515. 【書式】
  516.     ■DeferUserFn    VI-28-30
  517.  
  518.     OSErr    DeferUserFn(ProcPtr userFunction, void *argument);
  519. /***Debugger***/ DebugStr SysBreak SysBreakStr SysBreakFunc MemoryManager
  520. Debugger(2m)
  521.  
  522. 【名前】
  523.     Debugger     -
  524.     DebugStr     -
  525.     SysBreak     -
  526.     SysBreakStr  -
  527.     SysBreakFunc -
  528.  
  529. 【形式】
  530.     void    Debugger(void);
  531.     void    DebugStr(ConstStr255Param aStr);
  532.  
  533.     void    SysBreak(void);
  534.     void    SysBreakStr(ConstStr255Param debugStr);
  535.     void    SysBreakFunc(ConstStr255Param debugFunc);
  536. /***DebuggerGetMax***/ DebuggerEnter DebuggerExit DebuggerPoll GetPageState PageFaultFatal DebuggerLockMemory DebuggerUnlockMemory PageState EnterSupervisorMode StatusRegisterContents  MemoryManager
  537. DebuggerGetMax(2m)
  538.  
  539. 【名前】
  540.     DebuggerGetMax       -
  541.     PageFaultFatal       -
  542.     DebuggerLockMemory   -
  543.     DebuggerUnlockMemory -
  544.     DebuggerEnter        -
  545.     DebuggerExit         -
  546.     DebuggerPoll         -
  547.     GetPageState         -
  548.     EnterSupervisorMode  -
  549.  
  550. 【書式】
  551.     ■デバッガサポート    VI-28-23 〜
  552.     ■デバッガルーチン    VI-28-30 〜
  553.  
  554.     long    DebuggerGetMax(void);
  555.     Boolean    PageFaultFatal(void);
  556.     OSErr    DebuggerLockMemory(void *address, unsigned long count);
  557.     OSErr    DebuggerUnlockMemory(void *address, unsigned long count);
  558.  
  559.     void    DebuggerEnter(void);
  560.     void    DebuggerExit(void);
  561.     void    DebuggerPoll(void);
  562.  
  563.     PageState GetPageState(const void *address);
  564.             0 = kPageInMemory RAM内にページがある
  565.             1 = kPageOnDisk   ディスク上にページがある
  566.             2 = kNotPaged     アドレスはページングの対象でない
  567.  
  568.     ■PageState    VI-28-26
  569.         PageState    short
  570.  
  571.  
  572.     ■EnterSupervisorMode        VI-28-25
  573.     StatusRegisterContents    EnterSupervisorMode(void);
  574.  
  575.     ■StatusRegisterContents    VI-28-25
  576.         StatusRegisterContents    short
  577. /***TempFreeMem***/ TempMaxMem TempNewHandle TempHLock TempHUnlock TempDisposeHandle TempTopMem MFMaxMem MFFreeMem MFTopMem MFTempNewHandle MFTempHLock MFTempHUnlock MFTempDisposHandle MemoryManager
  578. TempFreeMem(2m)
  579.  
  580. 【名前】
  581.     TempFreeMem        -
  582.     TempMaxMem         -
  583.     TempNewHandle      -
  584.     TempHLock          - System6.0 用
  585.     TempHUnlock        - System6.0 用
  586.     TempDisposeHandle  - System6.0 用
  587.     TempTopMem         - Gestalt: gestaltLogicalRamSize で行える
  588.     MFMaxMem           - System 6.0 の MultiFinder 下での関数
  589.     MFFreeMem          -
  590.     MFTopMem           -
  591.     MFTempNewHandle    -
  592.     MFTempHLock        -
  593.     MFTempHUnlock      -
  594.     MFTempDisposHandle -
  595.  
  596. 【書式】
  597.     ■テンポラリメモリの説明    VI-28-33
  598.     ■VI-28-38
  599.     Size    TempMaxMem(Size *grow);
  600.     long    TempFreeMem(void);
  601.     Handle    TempNewHandle(Size logicalSize, OSErr *resultCode);
  602.  
  603.     ■VI-28-39, 37    
  604.     void    TempHLock(Handle h, OSErr *resultCode);
  605.     void    TempHUnlock(Handle h, OSErr *resultCode);
  606.     void    TempDisposeHandle(Handle h, OSErr *resultCode);
  607.     Ptr    TempTopMem(void);
  608.  
  609.     << System 6.0 での互換関数 >>
  610.     MFMaxMem        → TempMaxMem
  611.     MFFreeMem        → TempFreeMem
  612.     MFTopMem        → TempTopMem
  613.     MFTempNewHandle        → TempNewHandle
  614.     MFTempHLock        → TempHLock
  615.     MFTempHUnlock        → TempHUnlock
  616.     MFTempDisposHandle    → TempDisposeHandle
  617. /***Size***/ Zone THz MemoryManager
  618. Size(2m)
  619.  
  620. 【名前】
  621.     Size - data type
  622.     Zone - data type(ゾーン)
  623.  
  624. 【形式】
  625.     ■Size    II-18
  626.         Size        long
  627.  
  628.     ■Zone    II-22
  629.       Zone
  630.         Ptr    bkLim;
  631.         Ptr    purgePtr;
  632.         Ptr    hFstFree;
  633.         long    zcbFree;
  634.         GrowZoneProcPtr    gzProc;
  635.         short    moreMast;
  636.         short    flags;
  637.         short    cntRel;
  638.         short    maxRel;
  639.         short    cntNRel;
  640.         short    maxNRel;
  641.         short    cntEmpty;
  642.         short    cntHandles;
  643.         long    minCBFree;
  644.         ProcPtr    purgeProc;
  645.         Ptr    sparePtr;
  646.         Ptr    allocPtr;
  647.         short    heapData;
  648.       THz    Zone *
  649. #
  650. #
  651. #
  652. /***InitResources***/ ResError RsrcZoneInit CurResFile ResourceManager
  653. InitResources(2m)
  654.  
  655. 【名前】
  656.     InitResources - リソースマネージャの初期化
  657.     ResError      - 直前に実行されたエラーコードの取得
  658.     RsrcZoneInit  - 前のアプリケーションの使用していたリソースを全てクリア
  659.     CurResFile    - カレントリソースファイル参照番号の取得
  660.  
  661. 【書式】
  662.     ■InitResources    I-114
  663.     ■ResError    I-116
  664.     ■RsrcZoneInit    I-114
  665.     ■CurResFile    I-116
  666.  
  667.     short    InitResources(void);
  668.         リソースマネージャの初期化
  669.           このルーチンはシステムから起動時に自動的に呼び出されるので、
  670.           アプリケーションから呼び出さなくてもよい
  671.  
  672.     short    ResError(void);
  673.  
  674.     void    RsrcZoneInit(void);
  675.  
  676.     short    CurResFile(void);
  677.             カレントリソースファイルの参照番号を返します
  678. /***CreateResFile***/ OpenResFile OpenRFPerm UseResFile CloseResFile GetResFileAttrs SetResFileAttrs SetResLoad HOpenResFile HCreateResFile FSpOpenResFile FSpCreateResFile ResourceManager
  679. CreateResFile(2m)
  680.  
  681. 【名前】
  682.     CreateResFile    - リソースファイルの作成
  683.     HCreateResFile   -
  684.     FSpCreateResFile -
  685.     OpenResFile      - リソースファイルのオープン
  686.     OpenRFPerm       -
  687.     HOpenResFile     -
  688.     FSpOpenResFile   -
  689.     CloseResFile     - リソースファイルのクローズ
  690.     UseResFile       - カレントリソースファイルの変更
  691.     GetResFileAttrs  - リソースファイルの属性取得
  692.     SetResFileAttrs  - リソースファイルの属性設定
  693.     SetResLoad       -
  694.  
  695. 【書式】
  696.     ■CreateResFile        I-114
  697.     ■OpenResFile        I-115
  698.     ■OpenRFPerm        IV-17
  699.     ■CloseResFile        I-115
  700.     ■UseResFile        I-117
  701.  
  702.     ■GetResFileAttrs    I-127
  703.     ■SetResFileAttrs    I-127
  704.     ■SetResLoad        I-118
  705.  
  706.     ■HOpenResFile
  707.     ■HCreateResFile
  708.  
  709.     ■FspOpenResFile
  710.     ■FspCreateResFile
  711.  
  712.     void    CreateResFile(ConstStr255Param fileName);
  713.     void    HCreateResFile(short vRefNum, long dirID,
  714.                 ConstStr255Param fileName);
  715.     void    FSpCreateResFile(const FSSpec *spec, OSType creator,
  716.                 OSType fileType, ScriptCode scriptTag);
  717.             リソースファイルの作成
  718.  
  719.     short    OpenResFile  (ConstStr255Param fileName);
  720.     short    OpenRFPerm   (ConstStr255Param fileName, short vRefNum,
  721.                         char permission);
  722.     short    HOpenResFile(short vRefNum, long dirID,
  723.                 ConstStr255Param fileName, char permission);
  724.     short    FSpOpenResFile(const FSSpec *spec, SignedByte permission);
  725.             戻り値: ファイル参照番号
  726.             permission: ファイルの書き込み、読みだし状態
  727.  
  728.     void    CloseResFile(short refNum);
  729.             リソースファイルのクローズ
  730.  
  731.     void    UseResFile(short refNum);
  732.             カレントリソースを指定参照番号のファイルに設定します
  733.  
  734.     short    GetResFileAttrs(short refNum);
  735.     void    SetResFileAttrs(short refNum, short attrs);
  736.  
  737.     void    SetResLoad(Boolean load);
  738.             loadがTRUEなら、まだ読み込まれていないリソースを改めて
  739.             読み込む
  740. /***CountTypes***/ Count1Types GetIndType Get1IndType CountResources Count1Resources GetIndResource Get1IndResource GetResource Get1Resource GetNamedResource Get1NamedResource UniqueID Unique1ID RGetResource ResourceManager
  741. CountTypes(2m)
  742.  
  743. 【名前】
  744.     GetResource       - リソースの読込み
  745.     Get1Resource      - リソースの読込み(先頭ファイル)
  746.     RGetResource      - リソースの読込み(ROM)
  747.     GetNamedResource  - リソースの読込み(名前)
  748.     Get1NamedResource - リソースの読込み(名前,先頭ファイル)
  749.     GetIndResource      - リソースの読込み(index)
  750.     Get1IndResource   - リソースの読込み(index,先頭ファイル)
  751.     CountTypes        - リソースタイプ数の取得
  752.     Count1Types       - リソースタイプ数の取得(先頭ファイル)
  753.     GetIndType        - 指定番号のリソースタイプの取得
  754.     Get1IndType       - 指定番号のリソースタイプの取得(先頭ファイル)
  755.     CountResources      - 指定タイプのリソース数の取得
  756.     Count1Resources   - 指定タイプのリソース数の取得(先頭ファイル)
  757.     UniqueID          - リソースの空いているIDの取得
  758.     Unique1ID         - リソースの空いているIDの取得(先頭ファイル)
  759.  
  760. 【書式】
  761.     ■GetResource        I-119
  762.     ■Get1Resource        IV-16
  763.     ■RGetResource        V-30
  764.     ■GetNamedResource    I-119
  765.     ■Get1NamedResource    IV-15
  766.     ■GetIndResource    I-118
  767.     ■Get1IndResource    IV-15
  768.     ■CountTypes        I-117
  769.     ■Count1Types        IV-15
  770.     ■GetIndType        I-117
  771.     ■Get1IndType        IV-15
  772.     ■CountResources    I-118
  773.     ■Count1Resources    IV-15
  774.     ■UniqueID        I-121
  775.     ■Unique1ID        IV-16
  776.  
  777.     関数名に "1" が付いたものは、リソースチェインの先頭(通常最後に開いた
  778.     リソースファイル)のみを対象とした関数です。
  779.  
  780.     Handle    GetResource(ResType theType, short theID);
  781.     Handle    Get1Resource(ResType theType, short theID);
  782.     Handle    RGetResource(ResType theType, short theID);
  783.             指定のリソースタイプ,IDのリソースを読込む
  784.  
  785.     Handle    GetNamedResource(ResType theType, ConstStr255Param name);
  786.     Handle    Get1NamedResource(ResType theType, ConstStr255Param name);
  787.  
  788.     Handle    GetIndResource(ResType theType, short index);
  789.     Handle    Get1IndResource(ResType theType, short index);
  790.             指定リソースタイプの index 番目のリソースを得ます
  791.  
  792.     short    CountTypes(void);
  793.     short    Count1Types(void);
  794.             リソースファイルに含まれるタイプ数のを返します
  795.  
  796.     void    GetIndType(ResType *theType, short index);
  797.     void    Get1IndType(ResType *theType, short index);
  798.             リソースタイプの数までの数indexを渡すと、対応するリソ
  799.             ースタイプが返されます
  800.  
  801.     short    CountResources(ResType theType);
  802.     short    Count1Resources(ResType theType);
  803.             指定リソースタイプのリソース数を返します
  804.  
  805.     short    UniqueID(ResType theType);
  806.     short    Unique1ID(ResType theType);
  807. /***LoadResource***/ ReleaseResource DetachResource ResourceManager
  808. LoadResource(2m)
  809.  
  810. 【名前】
  811.     LoadResource    - リソースの読込み
  812.     ReleaseResource - リソースのメモリからの解放
  813.     DetachResource    -
  814.  
  815. 【書式】
  816.     ■LoadResource        I-119
  817.     ■ReleaseResource    I-120
  818.     ■DetachResource    I-120
  819.  
  820.     void    LoadResource(Handle theResource);
  821.     void    ReleaseResource(Handle theResource);
  822.     void    DetachResource(Handle theResource);
  823. /***GetResAttrs***/ GetResInfo SetResInfo AddResource SizeResource HomeResFile MaxSizeRsrc RsrcMapEntry SetResourceSize ResourceManager
  824. GetResAttrs(2m)
  825.  
  826. 【名前】
  827.     GetResAttrs  - リソース属性の取得
  828.     GetResInfo   - リソースType,ID,Nameの取得
  829.     SetResInfo   - リソースID,Nameの設定
  830.     AddResource  - リソースをリソースファイルに加えます
  831.     SizeResource - リソースサイズの取得
  832.     HomeResFile  - リソースのあるファイルの参照番号の取得
  833.     MaxSizeRsrc  - リソース最大サイズの取得
  834.     RsrcMapEntry -
  835.     SetResourceSize    -
  836.  
  837. 【書式】
  838.     ■GetResAttrs        I-121
  839.     ■GetResInfo        I-121
  840.     ■SetResInfo        I-122
  841.     ■AddResource        I-124
  842.     ■SizeResource        I-121
  843.     ■HomeResFile        I-117
  844.     ■MaxSizeRsrc        IV-16
  845.     ■RsrcMapEntry        IV-16
  846.     ■SetResourceSize    ??
  847.  
  848.     short    GetResAttrs(Handle theResource);
  849. ###
  850.  
  851.     void    GetResInfo(Handle theResource, short *theID, ResType *theType,
  852.                             Str255 name);
  853.     void    SetResInfo(Handle theResource, short theID,
  854.                         ConstStr255Param name);
  855.  
  856.     void    AddResource(Handle theResource, ResType theType, short theID,
  857.             ConstStr255Param name);
  858.  
  859.         theDataと言うデータを持つリソースをリソースファイルに加えます
  860.  
  861.  
  862.     long    SizeResource(Handle theResource);
  863.     short    HomeResFile(Handle theResource);
  864.  
  865.     long    MaxSizeRsrc(Handle theResource);
  866.  
  867.     long    RsrcMapEntry(Handle theResource);
  868.  
  869.     void    SetResourceSize(Handle theResource, long newSize);
  870. /***SetResAttrs***/ ChangedResource RmveResource UpdateResFile WriteResource SetResPurge ReadPartialResource WritePartialResource ResourceManager
  871. SetResAttrs(2m)
  872.  
  873. 【名前】
  874.     SetResAttrs     - 属性の変更
  875.     ChangedResource    -
  876.     RmveResource    - カレントリソースファイルから外します
  877.     UpdateResFile   - リソースファイルを変更します
  878.     WriteResource   - ディスクに書き出す
  879.     SetResPurge     - 
  880.     ReadPartialResource  -
  881.     WritePartialResource -
  882.  
  883. 【書式】
  884.     ■SetResAttrs        I-122
  885.     ■ChangedResource    I-123
  886.     ■RmveResource        I-124
  887.     ■UpdateResFile        I-125
  888.     ■WriteResource        I-125
  889.     ■SetResPurge        I-126
  890.     ■ReadPartialResource  
  891.     ■WritePartialResource 
  892.  
  893.     void    SetResAttrs(Handle theResource, short attrs);
  894.  
  895.     void    ChangedResource(Handle theResource);
  896.     void    RmveResource(Handle theResource);
  897.  
  898.     void    UpdateResFile(short refNum);
  899.             refNumの参照番号を持つリソースファイルを変更します
  900.  
  901.     void    WriteResource(Handle theResource);
  902.             リソース属性が正しくセットされているならディスクに
  903.             書き出す
  904.  
  905.     void    SetResPurge(Boolean install);
  906.             installがTRUEならリソースがパージされるときチェックが
  907.             行なわれる
  908.  
  909.     void    ReadPartialResource(Handle theResource, long offset,
  910.                         void *buffer, long count);
  911.     void    WritePartialResource(Handle theResource, long offset,
  912.                         const void *buffer, long count);
  913. /***ResList***/ Res ResourceManager
  914. ResList(2m)
  915.  
  916. 【名前】
  917.     ResList - リソースの一覧
  918.  
  919. 【解説】
  920.     全リソースの一覧    VI-13-4(Part2)
  921.  
  922.     Type    System    IM        意味
  923.     -------+-------+---------------+---------------------------------------
  924.     'actb'        V-278        Alert ボックスカラーテーブル
  925.     'ADBS'        V-371        Apple Desktop Bus のサービスルーチン
  926.     'alis'                Alias レコード
  927.     'ALRT'        V-278        Alert ボックステンプレート
  928.     'BNDL'        V-327        バンドル
  929.     'CACH'    OS            RAMキャッシュコード
  930.     'card'                ビデオカード名
  931.     'cctb'        V-221        Control カラーテーブル
  932.     'CDEF'        V-221        Control 定義関数
  933.     'cdev'        V-327, 329
  934.     'cicn'        V-65, 78, 80    カラー ICON
  935.     'clut'        V-78, 81    カラー LUT
  936.     'CNTL'                Control テンプレート
  937.     'CODE'                コードセグメント
  938.     'crsr'        V-63, 78    カラーカーソル
  939.     'CURS'        I-476        カーソル
  940.     'dctb'        V-278        Dialog カラーテーブル
  941.     'ddev'                DataBase エクステンション
  942. 'dPro'
  943.     'DITL' cdev    V-327
  944.     'DITL'        V-278        Dialog/Alert のアイテムリスト
  945.     'DLOG'        V-278        Dialog テンプレート
  946.     'DRVR'                デスクアクセサリまたはその他のドライバ
  947.     'DSAT'    OS            システムスタートアップアラートテーブル
  948.     'eadr'                Ethernet のハードウエアアドレス
  949.     'FCMT'    OS            "Get Info" コメント
  950.     'fctb'        V-184        フォントカラーテーブル
  951.     'FKEY'                Command+Shift+<数字>キーの組み合わせ
  952.     'FMTR'    OS            3.5" ディスクのフォーマット用コード
  953.     'FOBJ'    OS            MFSボリューム用のフォルダ情報
  954.     'FOND'        V-181, 185    フォントファミリレコード
  955.     'FONT'        V-181        ビットマップフォント
  956.     'FREF' cdev    V-327        ファイルリファレンス
  957.     'FRSV'    OS            システムフォントID
  958.     'hdlg'                Help Dialog/Alert用
  959.     'hfdr'                Help アプリケーションのアイコン用
  960.     'hmnu'                Help アプリケーションのメニュー用
  961.     'hovr'                Help Finderのヘルプをオーバーライドする
  962.     'hrct'                Help Window の領域用
  963.     'hwin'                Help 特定のウインドウと 'hrct' & 'hdlg'
  964.                                 との結合
  965.     'icl4'                ICON 32x32 4bits
  966.     'icl8'                ICON 32x32 8bits
  967. 'ICN#' cdev    V-327        ICON 32x32 B&W
  968.     'ICN#' cdev    I-476        ICON 32x32 B&W
  969.     'ICON'        I-476        モノクロ ICON
  970.     'ics#'                ICON 16x16 B&W
  971.     'ics4'                ICON 16x16 4bits
  972.     'ics8'                ICON 16x16 8bits
  973.     'ictb'        V-278        Dialog カラーテーブルダイアログアイテム
  974.     'INIT' 31    V-352        システムエクステンション
  975.     'INTL' 0    V-288        インターナショナルリソース(Sys7で廃止)
  976.     'INTL' 1    V-288
  977.     'INTL' 2    V-288
  978.     'itl0'        V-288        日付時刻フォーマット
  979.     'itl1'        V-288        曜日および月の名称
  980.     'itl2'        V-288        International Utilities Package の
  981.                                 ソートフック
  982.     'itl4'                ローカライズできるテーブルおよびコード
  983.     'itlb'        V-288
  984.     'itlc'        V-288
  985.     'itlk'                'KCHR'に対応して, KeyTrans() が呼び出さ
  986.                     れる前に, 特定のキーの組み合わせを再定
  987.                     義する
  988.     'KCAP'                物理的なキーボード定義
  989.                     (Key Capsデスクアクセサリが使用)
  990.     'KCHR'        V-190        (ソフト的な)キーボードレイアウト
  991.                     仮想キーコードをキャラクタにマッピング
  992.                     する
  993.     'kcs#'                'KCHR' 16x16 B&W  アイコン
  994.     'kcs4'                'KCHR' 16x16 4bit アイコン
  995.     'kcs8'                'KCHR' 16x16 8bit アイコン
  996.     'KMAP'    OS    V-190        (ハードウエア的な)キーボードマッピング
  997.                     ローキーコードを仮想キーコードにマップ
  998.     'KSWP'    OS            Script Manager の操作のための特別なキー
  999.                             の組み合わせの定義
  1000.     'mach' cdev    V-327, 328
  1001.     'LDEF'                リスト定義手続き
  1002.     'MBAR'        I-365        Menu バー
  1003.     'MBDF'    OS    V-250        デフォルトのメニュー定義手続き
  1004.     'mctb'        V-234        Menu カラー情報テーブル
  1005.     'MDEF's        V-248        Menu 定義手続き
  1006.     'MENU'        I-364        Menu 
  1007.     'MMAP'    OS            マウストラッキングコード
  1008.     'mntr'                Monitors コントロールパネル
  1009.     'NBPC'    OS            AppleTalk のバンドル
  1010.     'NFNT'        V-181, 183    ビットマップフォント
  1011.     'nrct' cdev    V-327
  1012.     'nrct'        V-329
  1013.     'PACK'                パッケージ
  1014.     'PAT '        I-476        パターン
  1015.     'PAT#'        I-476        パターンリスト
  1016.     'PDEF'    OS            プリント用コード
  1017.     'PICT'        I-476        PICT ピクチャ
  1018.     'pltt'        V-152        カラーパレット
  1019.     'POST'                PostScript リソース
  1020.     'ppat'        V-78, 79    ピクセルパターン
  1021.     'PREC'                プリントレコード
  1022.     'PTCH'    OS            ROM パッチコード
  1023.     'ROv#'    OS            オーバーライドするためのコード
  1024.     'ROvr'    OS            オーバーライドするためのコード(ROM用)
  1025.     'qdef'                クィアリ定義関数
  1026.     'qrsc'                クィアリリソース
  1027.     'SERD'    OS            RAM Serial Driver
  1028.     'SICN'                ICON スモール
  1029.     'SIZE'                アプリケーションのパーティションサイズ
  1030.     'STR '        I-476        文字列
  1031.     'STR#'        I-476        文字列リスト
  1032.     'scrn'        V-127        
  1033.     'sect'                セクションレコード
  1034.     'sfnt'                アウトラインフォント
  1035.     'snd '        V-476, 490    サウンド
  1036.     'snth'        V-476, 495    シンセサイザまたはモディファイア
  1037. 'styl'
  1038.     'sysz'                SystemExtension が要求するシステム
  1039.                     ヒープスペース
  1040. 'TEXT'
  1041.     'vers'                バージョン番号
  1042.     'wctb'        V-201, 204    Window カラーテーブル
  1043.     'WDEF'                Window 定義関数
  1044.     'WIND'                Window テンプレート
  1045.     'wstr'                文字列(文字列長をワードで表現)
  1046.  
  1047.     リソースID
  1048.     -32768 〜 -16385    予約済み
  1049.     -16384 〜 -4065        他のシステムリソースに従属するシステムリソース
  1050.     -4064  〜 -4033        コントロールパネルが使用するための予約
  1051.                 (V-323 "Control Panels" 参照)
  1052.     -4032  〜 -1        他のシステムリソースに従属するシステムリソース
  1053.                 ('SIZE' は例外に ID=-1)
  1054.     0      〜 127        システムソフトウエア中のシステムリソースおよび
  1055.                 定義手続き
  1056.     128    〜 32767        アプリケーション用
  1057.